gtk4.git
5 years agoinspector: Make the actions tab work again
Matthias Clasen [Sun, 19 Jul 2020 05:56:00 +0000 (01:56 -0400)]
inspector: Make the actions tab work again

Bring back the actions tab; we don't receive
changes anymore, since GtkActionMuxer lost
the GActionGroup signals for this, and the
action observer machinery has no way to listen
for all changes.

5 years agoAdd gtk_action_muxer_list_actions
Matthias Clasen [Sun, 19 Jul 2020 05:55:13 +0000 (01:55 -0400)]
Add gtk_action_muxer_list_actions

This is needed to reinstate the actions support
in the inspector.

5 years agoactionmuxer: Stop implementing GActionGroup
Matthias Clasen [Sun, 19 Jul 2020 05:17:23 +0000 (01:17 -0400)]
actionmuxer: Stop implementing GActionGroup

Instead of implementing the GActionGroup interface
and using its signals for propagating changes up
and down the muxer hierarchy, use the GtkActionObserver
mechanism. This cuts down on the signal emission
overhead.

5 years agoactionmuxer: Port internal users
Matthias Clasen [Sun, 19 Jul 2020 02:30:02 +0000 (22:30 -0400)]
actionmuxer: Port internal users

Port all internal users of the action muxer
from the GActionGroup interface to the new
action muxer apis.

5 years agoactionmuxer: Add some more api
Matthias Clasen [Sun, 19 Jul 2020 02:28:53 +0000 (22:28 -0400)]
actionmuxer: Add some more api

We want to drop the GActionGroup interface from
GtkActionMuxer, so add the necessary api directly
to GtkActionMuxer itself.

5 years agoinspector: Remove action support temporarily
Matthias Clasen [Sun, 19 Jul 2020 02:28:03 +0000 (22:28 -0400)]
inspector: Remove action support temporarily

This is using the action muxer as a GActionGroup,
and we want to remove that interface from GtkActionMuxer.

The support will come back later.

5 years agoSpeed up action muxer setup more
Matthias Clasen [Fri, 24 Apr 2020 05:11:13 +0000 (01:11 -0400)]
Speed up action muxer setup more

Don't emit signals for group insertion/removal
if nobody is listening.

5 years agoSpeed up action muxer setup
Matthias Clasen [Fri, 24 Apr 2020 04:52:17 +0000 (00:52 -0400)]
Speed up action muxer setup

We don't need to duplicate all these action names and
emit all these signals if nobody is listening.

5 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Mon, 20 Jul 2020 12:23:12 +0000 (12:23 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

Matthiasc/for master

See merge request GNOME/gtk!2266

5 years agogsk: Remove an unused debug flag
Matthias Clasen [Mon, 20 Jul 2020 01:21:41 +0000 (21:21 -0400)]
gsk: Remove an unused debug flag

GSK_DEBUG_DIFF was not used anywhere, so remove it.

5 years agoinspector: Add a few more debug flags
Matthias Clasen [Mon, 20 Jul 2020 01:10:12 +0000 (21:10 -0400)]
inspector: Add a few more debug flags

Add check buttons for GTK_DEBUG=constraints and
GTK_DEBUG=layout in the logs page.

5 years agoTweak the GTK_DEBUG=help output
Matthias Clasen [Mon, 20 Jul 2020 01:03:17 +0000 (21:03 -0400)]
Tweak the GTK_DEBUG=help output

I got the layout flag wrong when I added the
improved help output. It is about layout managers,
not about showing layout borders.

5 years agoMerge branch 'list-model-docs' into 'master'
Matthias Clasen [Sun, 19 Jul 2020 23:50:09 +0000 (23:50 +0000)]
Merge branch 'list-model-docs' into 'master'

List model docs

See merge request GNOME/gtk!2182

5 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Sun, 19 Jul 2020 19:14:04 +0000 (19:14 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

Matthiasc/for master

See merge request GNOME/gtk!2265

5 years agowindowhandle: Don't use an action muxer needlessly
Matthias Clasen [Sun, 19 Jul 2020 16:52:31 +0000 (12:52 -0400)]
windowhandle: Don't use an action muxer needlessly

The api that is meant to be used here is
gtk_widget_activate_action.

5 years agoNEWS: Updates
Matthias Clasen [Sat, 18 Jul 2020 22:28:51 +0000 (18:28 -0400)]
NEWS: Updates

5 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Sat, 18 Jul 2020 17:31:31 +0000 (17:31 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

Matthiasc/for master

See merge request GNOME/gtk!2264

5 years agobutton: Add explicit key bindings for activation
Matthias Clasen [Sat, 18 Jul 2020 16:51:18 +0000 (12:51 -0400)]
button: Add explicit key bindings for activation

We should not rely on GtkWindow to have global
"activate-default" key bindings that happen to
fall back to activating the focus widget. This is
unreliable, since the bubbling up from the button
to the toplevel may run across other widgets that
may want to use Enter for their own purpose, and
then the button loses out. By adding our own
key bindings, the button gets to handle it before
its ancestors.

This fixes check buttons in the inspector property
list not reacting to Enter despite having focus.

5 years agotext: Claim clicks when grabbing focus
Matthias Clasen [Sat, 18 Jul 2020 15:51:45 +0000 (11:51 -0400)]
text: Claim clicks when grabbing focus

If we don't, an ancestor (such a GtkListItemWidget)
may interpret the click as "I should grab focus!",
and still our focus away. This was causing hard-to-focus
entries in the property list in the inspector.

5 years agoinspector: Add focus handling to the property editor
Matthias Clasen [Sat, 18 Jul 2020 15:53:16 +0000 (11:53 -0400)]
inspector: Add focus handling to the property editor

We want to focus the actual control here.

5 years agoeditablelabel: Stop editing on focus-out
Matthias Clasen [Sat, 18 Jul 2020 14:10:38 +0000 (10:10 -0400)]
editablelabel: Stop editing on focus-out

This is the expected behavior for the main use case,
treeview-like 'edit one cell at a time'.

5 years agofixup editing style class
Matthias Clasen [Sat, 18 Jul 2020 14:10:28 +0000 (10:10 -0400)]
fixup editing style class

5 years agoeditablelabel: Document css nodes
Matthias Clasen [Sat, 18 Jul 2020 13:55:46 +0000 (09:55 -0400)]
editablelabel: Document css nodes

Just the usual.

5 years agoeditablelabel: Add a style class while editing
Matthias Clasen [Sat, 18 Jul 2020 13:54:55 +0000 (09:54 -0400)]
editablelabel: Add a style class while editing

Add the .editing style class to the editable label
while it is editing. The idea is that themes can
show a frame around the entry.

5 years agoMerge branch 'wip/ricotz/annotations' into 'master'
Rico Tzschichholz [Sat, 18 Jul 2020 11:06:47 +0000 (11:06 +0000)]
Merge branch 'wip/ricotz/annotations' into 'master'

gtk: Improve g-i annotations for methods of GtkExpression subclasses

See merge request GNOME/gtk!2263

5 years agogtk: Improve g-i annotations for methods of GtkExpression subclasses
Rico Tzschichholz [Sat, 18 Jul 2020 10:29:29 +0000 (12:29 +0200)]
gtk: Improve g-i annotations for methods of GtkExpression subclasses

5 years agoinspector: Clean up GtkInspectorGeneral
Matthias Clasen [Sat, 18 Jul 2020 04:31:04 +0000 (00:31 -0400)]
inspector: Clean up GtkInspectorGeneral

Drop the Private struct.

5 years agoinspector: Clean up GtkInspectorMiscInfo
Matthias Clasen [Sat, 18 Jul 2020 04:25:46 +0000 (00:25 -0400)]
inspector: Clean up GtkInspectorMiscInfo

Drop the Private struct.

5 years agoinspector: Clean up GtkInspectorVisual
Matthias Clasen [Sat, 18 Jul 2020 04:17:42 +0000 (00:17 -0400)]
inspector: Clean up GtkInspectorVisual

Drop the Private struct, and do all cleanup in dispose.

5 years agoinspector: Clean up GtkInspectorActions
Matthias Clasen [Sat, 18 Jul 2020 03:59:49 +0000 (23:59 -0400)]
inspector: Clean up GtkInspectorActions

Drop the Private struct, dispose properly,
and don't derive from GtkBox.

5 years agoinspector: Clean up GtkInspectorActionEditor
Matthias Clasen [Sat, 18 Jul 2020 03:36:05 +0000 (23:36 -0400)]
inspector: Clean up GtkInspectorActionEditor

Drop the Private struct, dispose properly,
and don't derive from GtkBox.

5 years agoinspector: Clean up GtkInspectorLogs
Matthias Clasen [Sat, 18 Jul 2020 03:24:14 +0000 (23:24 -0400)]
inspector: Clean up GtkInspectorLogs

Drop the Private struct, dispose properly,
and don't derive from GtkBox.

5 years agoinspector: Allow disposing the inspector
Matthias Clasen [Sat, 18 Jul 2020 03:15:42 +0000 (23:15 -0400)]
inspector: Allow disposing the inspector

We were hiding the inspector when the window
is closed, but that has the side-effect of
keeping references to application windows,
so we would keep them artificially alive,
which can have side-effects.

So, make the inspector go away when closed.

5 years agoinspector: Properly dispose GtkInspectorWindow
Matthias Clasen [Sat, 18 Jul 2020 03:15:25 +0000 (23:15 -0400)]
inspector: Properly dispose GtkInspectorWindow

5 years agoinspector: Properly dispose GtkInspectorShortcuts
Matthias Clasen [Sat, 18 Jul 2020 03:13:29 +0000 (23:13 -0400)]
inspector: Properly dispose GtkInspectorShortcuts

5 years agoinspector: Properly dispose GtkInspectorListData
Matthias Clasen [Sat, 18 Jul 2020 03:05:07 +0000 (23:05 -0400)]
inspector: Properly dispose GtkInspectorListData

5 years agoinspector: Dispose tree data properly
Matthias Clasen [Sat, 18 Jul 2020 02:54:19 +0000 (22:54 -0400)]
inspector: Dispose tree data properly

Another place where we were leaking children.

5 years agoinspector: Dispose the recorder properly
Matthias Clasen [Sat, 18 Jul 2020 02:44:01 +0000 (22:44 -0400)]
inspector: Dispose the recorder properly

We were leaking children here.

5 years agoinspector: Drop the recorder Private struct
Matthias Clasen [Sat, 18 Jul 2020 02:37:24 +0000 (22:37 -0400)]
inspector: Drop the recorder Private struct

5 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Sat, 18 Jul 2020 01:17:43 +0000 (01:17 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

gtk-demo: Don't use GtkColorSwatch

See merge request GNOME/gtk!2262

5 years agogtk-demo: Don't use GtkColorSwatch
Matthias Clasen [Sat, 18 Jul 2020 00:44:06 +0000 (20:44 -0400)]
gtk-demo: Don't use GtkColorSwatch

Making our own is 80 lines of code, so just do it.

5 years agoMerge branch 'ebassi/for-master' into 'master'
Matthias Clasen [Fri, 17 Jul 2020 13:18:59 +0000 (13:18 +0000)]
Merge branch 'ebassi/for-master' into 'master'

Fix typo in the GtkStrinFilter constructor declaration

See merge request GNOME/gtk!2261

5 years agoFix typo in the GtkStrinFilter constructor declaration
Emmanuele Bassi [Fri, 17 Jul 2020 13:16:46 +0000 (14:16 +0100)]
Fix typo in the GtkStrinFilter constructor declaration

5 years agoMerge branch 'ebassi/for-master' into 'master'
Emmanuele Bassi [Fri, 17 Jul 2020 13:09:55 +0000 (13:09 +0000)]
Merge branch 'ebassi/for-master' into 'master'

Fix typo in the gtk-doc stanza for gtk_string_filter_new()

See merge request GNOME/gtk!2259

5 years agoFix typo in the gtk-doc stanza for gtk_string_filter_new()
Emmanuele Bassi [Fri, 17 Jul 2020 11:03:17 +0000 (12:03 +0100)]
Fix typo in the gtk-doc stanza for gtk_string_filter_new()

5 years agoMerge branch 'wip/baedert/for-master' into 'master'
Matthias Clasen [Fri, 17 Jul 2020 10:56:16 +0000 (10:56 +0000)]
Merge branch 'wip/baedert/for-master' into 'master'

Wip/baedert/for master

Closes #2776

See merge request GNOME/gtk!2258

5 years agotestwidgettransforms: Fix GtkBox casts
Timm Bäder [Fri, 17 Jul 2020 05:14:50 +0000 (07:14 +0200)]
testwidgettransforms: Fix GtkBox casts

5 years agoboxlayout: Remove unnecessary checks
Timm Bäder [Fri, 17 Jul 2020 04:31:57 +0000 (06:31 +0200)]
boxlayout: Remove unnecessary checks

The pointers passed to GtkLayoutManager::measure() are never NULL. The
ones passed to gtk_layout_manager_measure() can be, however.

5 years agoboxlayout: Remove unused include
Timm Bäder [Fri, 17 Jul 2020 04:27:50 +0000 (06:27 +0200)]
boxlayout: Remove unused include

5 years agomigration guide: Remove a stray html tag
Timm Bäder [Fri, 17 Jul 2020 04:27:23 +0000 (06:27 +0200)]
migration guide: Remove a stray html tag

5 years agowidget: Save a gtk_css_node_get_style call
Timm Bäder [Sun, 12 Jul 2020 12:38:50 +0000 (14:38 +0200)]
widget: Save a gtk_css_node_get_style call

5 years agowidget: Remove useless if statement
Timm Bäder [Sun, 12 Jul 2020 11:57:20 +0000 (13:57 +0200)]
widget: Remove useless if statement

filter_value is never NULL anyway.

5 years agosnapshot: Use collect_default directoy in push_debug()
Timm Bäder [Sun, 12 Jul 2020 09:33:34 +0000 (11:33 +0200)]
snapshot: Use collect_default directoy in push_debug()

Instead of going through collect_debug and then doing a collect_default
anyway if the message is NULL.

5 years agodebug: Remove resize highlighting
Timm Bäder [Sun, 12 Jul 2020 09:20:31 +0000 (11:20 +0200)]
debug: Remove resize highlighting

This has been broken ever since the debug highlighting moved to
inspector overlays.

5 years agoGdkRGBA: Fix typo in documentation
Timm Bäder [Sun, 12 Jul 2020 08:55:31 +0000 (10:55 +0200)]
GdkRGBA: Fix typo in documentation

5 years agogl renderer: Avoid 9-slicing things that can't be
Timm Bäder [Sun, 12 Jul 2020 07:40:00 +0000 (09:40 +0200)]
gl renderer: Avoid 9-slicing things that can't be

The outline needs to be large enough so changing the size of the outline
does not affect the resulting blurred texture.

Fixes #2776

5 years agogl renderer: Remove outdated comment
Timm Bäder [Wed, 8 Jul 2020 04:14:55 +0000 (06:14 +0200)]
gl renderer: Remove outdated comment

5 years agogl renderer: Try to intersect rounded clips more often
Timm Bäder [Wed, 8 Jul 2020 03:45:34 +0000 (05:45 +0200)]
gl renderer: Try to intersect rounded clips more often

5 years agogl renderer: Remove unused flag
Timm Bäder [Sun, 5 Jul 2020 11:58:52 +0000 (13:58 +0200)]
gl renderer: Remove unused flag

5 years agoadwaita: Remove header bar border radius
Timm Bäder [Sun, 5 Jul 2020 09:03:36 +0000 (11:03 +0200)]
adwaita: Remove header bar border radius

We get this from the window node these days.

5 years agoicontheme: Indentation
Timm Bäder [Sat, 4 Jul 2020 07:26:08 +0000 (09:26 +0200)]
icontheme: Indentation

5 years agogl renderer: Ignore rounded clip that only increase the clip
Timm Bäder [Fri, 3 Jul 2020 04:41:29 +0000 (06:41 +0200)]
gl renderer: Ignore rounded clip that only increase the clip

This fixes the widget factory rendering too much.

In the widget-factory, we generally have a pretty small update area (two
spinners and a progressbar). We take the extents of that as a update
area and inital clip.

However, the first clip node we see is from the toplevel window, which
essentially increases the clip again to almost the entire window.

Fix that by ignoring such cases.

5 years agotestsuite: Fix test case indentation
Timm Bäder [Wed, 1 Jul 2020 14:22:30 +0000 (16:22 +0200)]
testsuite: Fix test case indentation

5 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Fri, 17 Jul 2020 03:20:20 +0000 (03:20 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

Matthiasc/for master

See merge request GNOME/gtk!2257

5 years agodocs: Move columns below columnview
Matthias Clasen [Fri, 17 Jul 2020 02:14:39 +0000 (22:14 -0400)]
docs: Move columns below columnview

5 years agoCosmetic docs change
Matthias Clasen [Fri, 17 Jul 2020 01:58:52 +0000 (21:58 -0400)]
Cosmetic docs change

5 years agodocs: Revise the filter docs a bit
Matthias Clasen [Fri, 17 Jul 2020 01:48:08 +0000 (21:48 -0400)]
docs: Revise the filter docs a bit

5 years agodocs: Revise sorter docs a bit
Matthias Clasen [Fri, 17 Jul 2020 01:45:11 +0000 (21:45 -0400)]
docs: Revise sorter docs a bit

5 years agobitset: try again
Matthias Clasen [Fri, 17 Jul 2020 01:44:31 +0000 (21:44 -0400)]
bitset: try again

5 years agoMerge branch 'wip/chergert/subclass-treeview' into 'master'
Matthias Clasen [Fri, 17 Jul 2020 01:05:07 +0000 (01:05 +0000)]
Merge branch 'wip/chergert/subclass-treeview' into 'master'

treeview: allow subclassing GtkTreeView

Closes #2936

See merge request GNOME/gtk!2256

5 years agodocs: Add more GtkExpression
Matthias Clasen [Fri, 17 Jul 2020 01:02:33 +0000 (21:02 -0400)]
docs: Add more GtkExpression

Make GtkExpression show up in the object
hierarchy, and add the param spec and GValue
support to the docs.

5 years agodocs: Document GtkBitsetIter
Matthias Clasen [Fri, 17 Jul 2020 00:27:00 +0000 (20:27 -0400)]
docs: Document GtkBitsetIter

5 years agodocs: Add an example
Matthias Clasen [Thu, 16 Jul 2020 23:52:08 +0000 (19:52 -0400)]
docs: Add an example

Add a small example for setting up columnview sorting.

5 years agodocs: Fix examples
Matthias Clasen [Thu, 16 Jul 2020 23:45:21 +0000 (19:45 -0400)]
docs: Fix examples

The formatting for examples in the GtkExpression
long description was messed up.

5 years agotreeview: allow subclassing GtkTreeView
Christian Hergert [Fri, 17 Jul 2020 00:06:06 +0000 (17:06 -0700)]
treeview: allow subclassing GtkTreeView

Porting code from GTK 3 without the ability to subclass GtkTreeView
directly can cause an extreme amount of pain on application developers.
It can also complicate performance when it comes to dealing with
encapsulation as the outer widget would also encapsulate the GtkScrollable
implementation from GtkTreeView, typically through GtkViewport.

Fixes #2936

5 years agodocs: Link to GtkTreeRowReference
Matthias Clasen [Thu, 16 Jul 2020 23:44:24 +0000 (19:44 -0400)]
docs: Link to GtkTreeRowReference

The list overview cross-reference table links
to all objects, except for this one.

5 years agodocs: Add GtkTreeExpander
Matthias Clasen [Thu, 16 Jul 2020 23:43:39 +0000 (19:43 -0400)]
docs: Add GtkTreeExpander

We want to link to it from various places, so it needs
to be present in the docs.

5 years agoMerge branch 'matthiasc/arrays' into 'master'
Matthias Clasen [Thu, 16 Jul 2020 23:31:31 +0000 (23:31 +0000)]
Merge branch 'matthiasc/arrays' into 'master'

Matthiasc/arrays

See merge request GNOME/gtk!2253

5 years agomultifilter: Use GdkArray for the filters
Matthias Clasen [Thu, 16 Jul 2020 17:12:25 +0000 (13:12 -0400)]
multifilter: Use GdkArray for the filters

5 years agomultisorter: Use GdkArray for the sorters
Matthias Clasen [Thu, 16 Jul 2020 16:53:29 +0000 (12:53 -0400)]
multisorter: Use GdkArray for the sorters

5 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Thu, 16 Jul 2020 21:03:21 +0000 (21:03 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

gtk-demo: Use better api

See merge request GNOME/gtk!2254

5 years agogtk-demo: Use better api
Matthias Clasen [Thu, 16 Jul 2020 20:24:49 +0000 (16:24 -0400)]
gtk-demo: Use better api

We have a getter for the model, lets use it.

5 years agoMerge branch 'wip/otte/for-master' into 'master'
Benjamin Otte [Thu, 16 Jul 2020 19:43:45 +0000 (19:43 +0000)]
Merge branch 'wip/otte/for-master' into 'master'

Wip/otte/for master

See merge request GNOME/gtk!2251

5 years agoMerge branch 'missing-exports' into 'master'
Matthias Clasen [Thu, 16 Jul 2020 18:52:22 +0000 (18:52 +0000)]
Merge branch 'missing-exports' into 'master'

Add missing exports for GtkColumnView methods.

See merge request GNOME/gtk!2252

5 years agolistitemmanager: Do a better job on double items
Benjamin Otte [Sun, 12 Jul 2020 05:49:53 +0000 (07:49 +0200)]
listitemmanager: Do a better job on double items

Previously, we would unparent the existing item that we were about
to reuse, and not the duplicate one.

Change that.

5 years agostringfilter: Make the constructor take an expression
Benjamin Otte [Sun, 12 Jul 2020 05:02:04 +0000 (07:02 +0200)]
stringfilter: Make the constructor take an expression

An expression is critically important for a string filter and people
should be made aware of it when constructing the filter.

5 years agogtk-demo: Don't make demos modal
Benjamin Otte [Sun, 12 Jul 2020 01:35:11 +0000 (03:35 +0200)]
gtk-demo: Don't make demos modal

That way, demo windows can be maximized and multiple demos can run at
once.

It's especially useful when using --run because the main window is
invisible then.

5 years agotestsuite: Don't be too exhaustive
Benjamin Otte [Sat, 11 Jul 2020 03:15:00 +0000 (05:15 +0200)]
testsuite: Don't be too exhaustive

The test was taking over 60s on CI, that's a but much.

5 years agotestsuite: Add a case with escaped Latin-1 code
Benjamin Otte [Fri, 10 Jul 2020 00:13:50 +0000 (02:13 +0200)]
testsuite: Add a case with escaped Latin-1 code

This came up in recent g_uri_escape() discussions.

5 years agoMerge branch 'wip/otte/vector' into 'master'
Matthias Clasen [Thu, 16 Jul 2020 18:05:43 +0000 (18:05 +0000)]
Merge branch 'wip/otte/vector' into 'master'

Arrays

See merge request GNOME/gtk!2197

5 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Thu, 16 Jul 2020 17:39:16 +0000 (17:39 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

Matthiasc/for master

See merge request GNOME/gtk!2250

5 years agoAdd missing exports for GtkColumnView methods.
Andreas Persson [Thu, 16 Jul 2020 16:58:41 +0000 (18:58 +0200)]
Add missing exports for GtkColumnView methods.

GDK_AVAILABLE_IN_ALL was missing for one method in GtkColumnView and one
in GtkColumnViewColumn.

5 years agotreesorter tests: Add a comment
Matthias Clasen [Thu, 16 Jul 2020 12:49:38 +0000 (08:49 -0400)]
treesorter tests: Add a comment

This looks like a leak, but isn't one.
Add a comment to that effect.

5 years agostringlist: Convert to array
Benjamin Otte [Fri, 3 Jul 2020 23:13:39 +0000 (01:13 +0200)]
stringlist: Convert to array

Stringlists are usually built and then never modified, and accessing
items through an array is faster.

5 years agosnapshot: Use GdkArray for the state stack
Benjamin Otte [Fri, 3 Jul 2020 02:53:50 +0000 (04:53 +0200)]
snapshot: Use GdkArray for the state stack

5 years agoarray: Add a bunch of new features
Benjamin Otte [Thu, 16 Jul 2020 14:33:14 +0000 (16:33 +0200)]
array: Add a bunch of new features

* GDK_ARRAY_BY_VALUE
  #define this to get GArray-like behavior
* gdk_array_splice (v, 0, 0, NULL, 25)
  Adding items but passing NULL as the items will zero() them.
* gdk_array_set_size()
  A nicer way to call gdk_array_splice()
* constify getters

5 years agoicontheme: Use GdkArray
Benjamin Otte [Fri, 3 Jul 2020 02:21:07 +0000 (04:21 +0200)]
icontheme: Use GdkArray

5 years agoarray: Add null-termination
Benjamin Otte [Thu, 2 Jul 2020 21:32:04 +0000 (23:32 +0200)]
array: Add null-termination

5 years agosnapshot: Port node list to GdkArray
Benjamin Otte [Thu, 2 Jul 2020 21:32:04 +0000 (23:32 +0200)]
snapshot: Port node list to GdkArray

5 years agosnapshot: Move structs into .c file
Benjamin Otte [Thu, 2 Jul 2020 20:59:40 +0000 (22:59 +0200)]
snapshot: Move structs into .c file

They aren't used anywhere else.